#ifndef GNVECTOR_H
#define GNVECTOR_H
#include "GnTypeTraits.h"


template<typename classType, class _Ax = std::allocator<classType>> class GnVector;

template<typename classType, class _Ax>
class GnVector : public std::vector<classType, _Ax>
{
	typedef typename std::vector<classType, _Ax> parentVector;
public:
	inline GnVector() : parentVector()
	{}

	inline explicit GnVector(const _Alloc& _Al) : parentVector( _Al )
	{}

	inline explicit GnVector(size_type _Count) : parentVector( _Count )
	{}

	inline GnVector(size_type _Count, const classType& _Val) : parentVector( _Count, _Val )
	{}

	inline GnVector(size_type _Count, const classType& _Val,
		const _Alloc& _Al) : parentVector( _Count, _Val, _Al )
	{}

	inline GnVector(const _Myt& _Right) : parentVector(_Right)
	{}

	template<class _Iter>
	inline GnVector(_Iter _First, _Iter _Last) : parentVector(_First, _Last)
	{}

	template<class _Iter>
	inline GnVector(_Iter _First, _Iter _Last, _Alloc& _Al)	: parentVector(_First, _Last, _Al)
	{}
	
	inline virtual	~GnVector(void){};
};

#include "GnVector.inl"
#endif // GNVECTOR_H
